package com.mailbox.mailbox.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.mailbox.mailbox.domain.Message;
import com.mailbox.mailbox.util.ResponseResult;
import org.apache.ibatis.annotations.Param;

/**
 * @author Administrator
 * @description 针对表【message】的数据库操作Service
 * @createDate 2022-05-15 08:45:05
 */
public interface MessageService extends IService<Message> {

    /**
     * 后台查询所有的留言
     * @param page 页数
     * @param size 每页的多少
     * @return
     */
    ResponseResult findAllMessages(Integer page, Integer size);

    /**
     * 根据时间或者类型遍历
     * @param page 页数
     * @param size 每页的多少
     * @param messageType 类型
     * @param createTime 开始时间
     * @param endTime 结束时间
     * @return
     */
    ResponseResult findSuchMessages(Integer page, Integer size, String messageType, String createTime, String endTime);

    /**
     * 通过电话查找留言
     * @param page 页数
     * @param size 每页的多少
     * @param phone 电话
     * @return
     */
    ResponseResult selectByPhone(Integer page,Integer size,String phone);

    /**
     * 通过姓名查找留言
     * @param page 页数
     * @param size 每页的多少
     * @param name 姓名
     * @return
     */
    ResponseResult selectByName(Integer page,Integer size,String name);

    /**
     * 通过邮箱查找留言
     * @param page 页数
     * @param size 每页的多少
     * @param email 邮箱
     * @return
     */
    ResponseResult selectByEmail(Integer page,Integer size,String email);

    /**
     * 根据内容查找留言
     * @param page 页数
     * @param size 每页的多少
     * @param content 内容
     * @return
     */
    ResponseResult selectByContent(Integer page,Integer size,String content);

    /**
     * 批量删除留言
     * @param ids
     * @return
     */
    ResponseResult deleteMessages(@Param("ids") String ids);

    /**
     * 查询所有未看的留言
     * @return
     */
    ResponseResult findUnSee(Integer page,Integer size,Integer status);

    /**
     * 查询所有未看的留言数目
     * @return
     */
    ResponseResult findUnSeeCounts(Integer status);

    /**
     * 查看公开的信件
     * @return
     */
    ResponseResult findOpenMessage(Integer pageNow,Integer pageSize);

    /**
     * 查看未公开的信件
     * @return
     */
    ResponseResult findNotOpenMessage(Integer pageNow,Integer pageSize);

    /**
     * 公开信件
     * @param messageId
     * @return
     */
    ResponseResult openMessage(Integer messageId);

    /**
     * 不公开信件
     * @param messageId
     * @return
     */
    ResponseResult closeMessage(Integer messageId);




}
